<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>

// console.log( 1 );
// setTimeout(function (){
//     console.log( 2 );
// },0)
// console.log( 3 );
// 1 3 2

// setTimeout(function (){// 异步
//     console.log( 1 );
// },0)
// new Promise((resolve,reject)=>{//执行器函数  同步
//     console.log( 2 );
//     resolve();
// })
// .then(()=>{// 异步
//     console.log( 3 );
// })
// console.log( 4 );
// 2 4 3 1

// 上面代码为什么是这样的结果?

// 事件循环机制
// 事件循环机制是浏览器JS引擎解析执行JS代码的一种机制

// 进程,进行中的程序
// 每一个进程都分配了独立的系统资源(CPU 内存 GPU)
// 进程之间互不影响
// 一个进程中可以有一个或多个线程

// 线程,程序的不同执行路线(执行流)
// 线程建立在进程的基础之上

// 单线程,多个任务程序,只有一个执行路线(同一时间只能执行一个任务)
// 多线程,多个任务程序,有多个执行路线(同一时间可以同时执行多个任务)

// 浏览器标签页中的渲染进程
// 浏览器每一个标签页都有一个独立的渲染进程
// 渲染进程主要负责: 页面渲染,解析执行JS脚本

// 渲染进程中的主要线程:
// 1.GUI渲染线程
// 2.JS引擎线程
// 3.事件触发线程
// 4.计时器线程
// 5.异步http请求线程


</script>
</body>
</html>